* doc.c (get_doc_string): Encode file name.
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 12 Oct 2011 19:08:04 +0000 (15:08 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 12 Oct 2011 19:08:04 +0000 (15:08 -0400)
src/ChangeLog
src/doc.c

index 6931610cda88d46580f06c536d710dd2d3a3a243..36a6f23ccab43827a9d172af95c7136387bc36e4 100644 (file)
@@ -1,3 +1,7 @@
+2011-10-12  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * doc.c (get_doc_string): Encode file name (bug#9735).
+
 2011-10-12  Eli Zaretskii  <eliz@gnu.org>
 
        * bidi.c (bidi_level_of_next_char):
index 83e943c42b87f78c473d3d5b15c9f527177e8e48..80aaba9f7b2add210ca298d2f106de819594ada0 100644 (file)
--- a/src/doc.c
+++ b/src/doc.c
@@ -116,14 +116,16 @@ get_doc_string (Lisp_Object filepos, int unibyte, int definition)
      If it is relative, combine it with Vdoc_directory.  */
 
   tem = Ffile_name_absolute_p (file);
+  file = ENCODE_FILE (file);
   if (NILP (tem))
     {
-      minsize = SCHARS (Vdoc_directory);
+      Lisp_Object docdir = ENCODE_FILE (Vdoc_directory);
+      minsize = SCHARS (docdir);
       /* sizeof ("../etc/") == 8 */
       if (minsize < 8)
        minsize = 8;
       name = (char *) alloca (minsize + SCHARS (file) + 8);
-      strcpy (name, SSDATA (Vdoc_directory));
+      strcpy (name, SSDATA (docdir));
       strcat (name, SSDATA (file));
     }
   else
@@ -138,7 +140,7 @@ get_doc_string (Lisp_Object filepos, int unibyte, int definition)
       if (!NILP (Vpurify_flag))
        {
          /* Preparing to dump; DOC file is probably not installed.
-            So check in ../etc. */
+            So check in ../etc.  */
          strcpy (name, "../etc/");
          strcat (name, SSDATA (file));